package com.blz.bugs.rs.web.client;

import com.blz.bugs.common.trans.ITransformation;
import com.blz.bugs.rs.web.bean.Header;

/**
 * <p>
 * HTTP客户端接口，采用对象传输，无需要设置或添加更多，更复杂的信息
 * </p>
 * 
 * @Title: IHttpClient.java
 * @Package com.blz.bugs.rs.web.client
 * @author bruce
 * @version V1.0
 * @since JDK 1.6.0.25
 * @create 2015-1-27 上午8:52:18 company www.blz.com
 */
public interface IHttpClient<T> {

	/**
	 * <p>
	 * 发送POST请求到服务端，传入头信息和消息体信息，其中涉及转换器需要实现{@link com.blz.bugs.common.trans.ITransformation}
	 * </p>
	 * 
	 * @author :bruce
	 * @param hder
	 * @param obj
	 * @param response
	 *            响应消息对象
	 * @return T
	 * @create 2015-1-28下午2:46:06
	 */
	T send(Header hder, Object obj);

	/**
	 * <p>
	 * 	发送GET请求到服务端，传入头信息，其中涉及转换器需要实现{@link com.blz.bugs.common.trans.ITransformation}
	 * </p> 
	 * @author :bruce
	 * @param hder
	 * @return T
	 * @create 2015-1-28下午4:08:49
	 */
	T send(Header hder);
	
	/**
	 * <p>
	 * 	添加转换类，消息转换主要通过该方式转换获取
	 *     {@link com.blz.bugs.common.trans.ITransformation#convert(Object)}
	 *  and{@link com.blz.bugs.common.trans.ITransformation#convert(String, Class)}
	 * </p> 
	 * @author :bruce
	 * @param transformation     
	 * @return void    
	 * @create 2015-1-28下午4:20:34
	 */
	void setTransformat(ITransformation transformation);
	
}
